Computer-aided techniques include Computer-Aided Design or CAD, which relates to software solutions for authoring product design. Similarly, CAE is an acronym for Computer-Aided Engineering, e.g. it relates to software solutions for simulating the physical behavior of a future product. CAM stands for Computer-Aided Manufacturing and typically includes software solutions for defining manufacturing processes and operations.
A number of systems and programs are offered on the market for the design of objects (or parts) or assemblies of objects, forming a product, such as the one provided by Dassault Systemes under the trademark CATIA. These CAD systems allow a user to construct and manipulate complex three dimensional (3D) models of objects or assemblies of objects. CAD systems thus provide a representation of modeled objects using edges or lines, in certain cases with faces. Lines or edges may be represented in various manners, e.g. non-uniform rational B-splines (NURBS). These CAD systems manage parts or assemblies of parts as modeled objects, which are essentially specifications of geometry. Specifically. CAD flies contain specifications, from which geometry is generated, which in turn allow for a representation to be generated. Specifications, geometry and representation may be stored in a single CAD file or multiple ones. CAD systems include graphic tools for representing the modeled objects to the designers; these tools are dedicated to the display of complex objects—the typical site of a file representing an object in a CAD system being in the range of one Megabyte per part, and an assembly may comprise thousands of parts. A CAD system manages models of objects, which are stored in electronic files.
In computer-aided techniques, the graphical user interface (GUI) plays an important role as regards the efficiency of the technique.
Also known are Product Lifecycle Management (PLM) solutions, which refer to a business strategy that helps companies to share product data, apply common processes, and leverage corporate knowledge for the development of products from conception to the end of their life, across the concept of extended enterprise. By including the actors (company departments, business partners, suppliers, Original Equipment Manufacturers (OEM), and customers), PLM may allow this network to operate as a single entity to conceptualize, design, build, and support products and processes.
Some PLM solutions make it for instance possible to design and develop products by creating digital mockups (a 3D graphical model of a product). For instance, the digital product may be first defined and simulated using an appropriate application. Then, the lean digital manufacturing processes may be defined and modeled.
The PLM solution provided by Dassault Systemes (under the trademarks CATIA, ENOVIA and DELMIA) provides an Engineering Hub, which organizes product engineering knowledge, a Manufacturing Hub, which manages manufacturing engineering knowledge, and an Enterprise Hub which enables enterprise integrations and connections into both the Engineering and Manufacturing Hubs. All together the system delivers an open object model linking products, processes, resources to enable dynamic, knowledge-based product creation and decision support that drives optimized product definition, manufacturing preparation, production and service. Such PLM solutions comprise a relational database of products. The database comprises a set of textual data and relations between the data. Data typically include technical data related to the products said data being ordered in a hierarchy of data and are indexed to be searchable. The data are representative of the modeled objects, which are often modeled products and processes.
Product lifecycle information, including product configuration, process knowledge and resources information are typically intended to be edited in a collaborative way.
Amongst other features, modeling in CAD applications often requires defining not only the geometric objects, but also the functional dependences between the said objects. This is usually achieved with the help of constraints. A constraint (e.g. a geometric constraint) is a relation among geometric objects that should be satisfied. For example, one may require that a first object is located at a given distance (offset) from a second object.
This way of designing is actually far from the usual procedural way of “thinking” of computers. In contrast with a procedural approach, a declarative description of geometry is much closer to human.
Recent geometric modelers offer a solution to this problem. The geometry can be described by defining constraints among geometric elements. Thanks to a constraint solver, the designer only specifies object shape and use in a declarative way, and the system takes care of making the drawing in accordance to the specification. The user specifies what to draw and not how to draw it.
In a number of existing CAD computer-based methods implementing constraints, the constraints are grouped in a network and solved all at the same time, using e.g. variational techniques. A variational solver processes the constraints without the need of arranging them in a predefined order. The declarative nature of constraints and e.g. the variational approach of solving makes all that components of the system are treated on a same footing.
A drawback with such methods, when solving the constraints, is that all involved parts may be moved, owing to side effects, resulting in possible conflicts between people working in a collaborative way. For instance, the first and second sets of parts designed by first and second teams, respectively, wherein parts in both the first and second sets are connected by constraints. Solving constraints connecting notably a part of the first set and a part of the second set is likely to change the relative positions of parts within the first or the second set, hence the possible conflicts.
One also knows CAD software is based on methods implementing oriented constraints, wherein said orientations are frozen, e.g. in connection with the relative order allocated when positioning the constrained objects. Allocating a relative order is similar in spirit to procedural schemes.
With such methods, in case of an impossibility of solving the constraint occurs, the designer is informed accordingly. At the best, the system only informs the designer that it can not find a solution but it does not provide him with any proposal. Then, the designer has to understand the origin of said impossibility and likely to “rethink” the definition of the objects and/or their relations. Such steps are time consuming.
Therefore, there is a need for a method of computer aided design allowing for assisting a designer in case of an impossibility of solving constraints occurs.
In addition, another problem inherent to methods implementing oriented constraints is that such methods suppose that a relative order in positioning objects can be allocated. Now, this cannot be always achieved. For some product configurations, this can even be impossible. Thus, the known technologies of oriented constraints are not suitable for some products. At least, the number of possible combinations of parts (e.g. the mechanical scenarios) is reduced compared with methods using non-oriented constraints. Hence, in addition to the above requirement (assisting the designer), the method should preferably allow for increasing the possibilities of combinations of parts, compared with existing solutions.